/*
与ES5函数不同，箭头函数没有自己的arguments对象。
箭头函数的arguments对象是对周围函数的arguments对象的引用。
由于箭头函数使用其周围的context execution，因此它们不适合定义对象的方法。

下面的例子中，将结帐更改为箭头函数。由于箭头函数使用其周围的context，
因此line 5中的this不再引用shoppingCart对象，将抛出
   Uncatch TypeError：无法读取未定义的属性 'forEach'。

*/
var shoppingCart = {
  items: ['Apple', 'Orange'],
  inventory: {Apple: 1, Orange: 0},
  checkout: ()=>{
      this.items.forEach(item => {    //line 5
          if(!this.inventory[item]) {
              console.log('this: ', this);
              console.log('Item ' + item + ' has sold out.');
          }
      })
  }
};
shoppingCart.checkout();


